A Study of Call Graph Construction for JVM-Hosted Languages

نویسندگان

چکیده

Call graphs have many applications in software engineering, including bug-finding, security analysis, and code navigation IDEs. However, the construction of call requires significant investment program analysis infrastructure. An increasing number programming languages compile to Java Virtual Machine (JVM), frameworks such as WALA SOOT support a broad range algorithms by analyzing JVM bytecode. This approach has been shown work well when applied bytecode produced from code. In this paper, we show that it also works for diverse other JVM-hosted languages: dynamically-typed functional Scheme, statically-typed object-oriented Scala, polymorphic OCaml. Effectively, get graph these free, using existing infrastructure Java, with only minor challenges soundness. This, turn, suggests bytecode-based could serve an implementation vehicle IDE features languages. We present qualitative quantitative analyses soundness precision constructed bytecodes languages, Groovy, Clojure, Python, Ruby. details matter greatly. particular, implementations Ruby produce very unsound graphs, due pervasive use reflection, invokedynamic instructions, run-time generation. Interestingly, dynamic translation schemes employed which result static tend be correlated poor performance at run time.

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Evaluating Call Graph Construction for JVM-hosted Language Implementations

An increasing number of programming languages compile to the Java Virtual Machine (JVM), and program analysis frameworks such as WALA and SOOT support a broad range of program analysis algorithms by analyzing bytecode. While this approach works well when applied to bytecode produced from Java code, its efficacy when applied to other bytecode has not been studied until now. We present qualitativ...

متن کامل

A Efficient Hosted Interpreters on the JVM

Many guest languages are implemented using the Java Virtual Machine as a host environment. There are two major implementation choices: custom compilers and so-called hosted interpreters. Custom compilers are complex to build but offer good performance. Hosted interpreters are comparatively simpler to implement but until now have suffered from poor performance. We studied the performance of host...

متن کامل

construction and validation of a computerized adaptive translation test (a receptive based study)

آزمون انطباقی رایانه ای (cat) روشی نوین برای سنجش سطح علمی دانش آموزان می باشد. در حقیقت آزمون های رایانه ای با سرعت بالایی به سمت و سوی جایگزین عملی برای آزمون های کاغذی می روند (کینگزبری، هاوسر، 1993). مقاله حاضر به دنبال آزمون انطباقی رایانه ای برای ترجمه می باشد. بدین منظور دو پرسشنامه مشتمل بر 55 تست ترجمه میان 102 آزمودنی و 10 مدرس زبان انگلیسی پخش گردید. پرسشنامه اول میان 102 دانشجوی س...

Application-Only Call Graph Construction

Since call graphs are an essential starting point for all interprocedural analyses, many tools and frameworks have been developed to generate the call graph of a given program. The majority of these tools focus on generating the call graph of the whole program (i.e., both the application and the libraries that the application depends on). A popular compromise to the excessive cost of building a...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

ژورنال

عنوان ژورنال: IEEE Transactions on Software Engineering

سال: 2021

ISSN: ['0098-5589', '1939-3520', '2326-3881']

DOI: https://doi.org/10.1109/tse.2019.2956925